/** * Copyright 2016 benjobs * <p> * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * <p> * http://www.apache.org/licenses/LICENSE-2.0 * <p> * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ package org.opencron.server.controller; import org.opencron.common.job.Opencron; import org.opencron.common.utils.WebUtils; import org.opencron.server.domain.Agent; import org.opencron.server.service.AgentService; import org.opencron.server.service.ExecuteService; import it.sauronsoftware.cron4j.SchedulingPattern; import org.quartz.CronExpression; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import javax.servlet.http.HttpServletResponse; @Controller @RequestMapping("/verify") public class VerifyController extends BaseController { private Logger logger = LoggerFactory.getLogger(getClass()); @Autowired private ExecuteService executeService; @Autowired private AgentService agentService; @RequestMapping("/exp") public void validateCronExp(Integer cronType, String cronExp, HttpServletResponse response) { boolean pass = false; if (cronType == 0) pass = SchedulingPattern.validate(cronExp); if (cronType == 1) pass = CronExpression.isValidExpression(cronExp); WebUtils.writeHtml(response, pass ? "true" : "false"); } @RequestMapping("/ping") public void validatePing(int proxy, Long proxyId, String ip, Integer port, String password, HttpServletResponse response) { Agent agent = new Agent(); agent.setProxy(proxy); agent.setIp(ip); agent.setPort(port); agent.setPassword(password); if (proxy == Opencron.ConnType.PROXY.getType()) { agent.setProxy(Opencron.ConnType.CONN.getType()); if (proxyId != null) { Agent proxyAgent = agentService.getAgent(proxyId); if (proxyAgent == null) { WebUtils.writeHtml(response,"false"); return; } agent.setProxyAgent(proxyId); //需要代理.. agent.setProxy(Opencron.ConnType.PROXY.getType()); } } boolean ping = executeService.ping(agent); if (ping) { WebUtils.writeHtml(response,"true"); } else { logger.error(String.format("validate ip:%s,port:%s cannot ping!", agent.getIp(), port)); WebUtils.writeHtml(response,"false"); } } @RequestMapping("/guid") public void getGuid(int proxy, Long proxyId, String ip, Integer port, String password, HttpServletResponse response) { Agent agent = new Agent(); agent.setProxy(proxy); agent.setIp(ip); agent.setPort(port); agent.setPassword(password); if (proxy == Opencron.ConnType.PROXY.getType()) { agent.setProxy(Opencron.ConnType.CONN.getType()); if (proxyId != null) { Agent proxyAgent = agentService.getAgent(proxyId); if (proxyAgent == null) { WebUtils.writeHtml(response,""); return; } agent.setProxyAgent(proxyId); //需要代理.. agent.setProxy(Opencron.ConnType.PROXY.getType()); } } String guid = executeService.guid(agent); WebUtils.writeHtml(response,guid); } }